% author:sousanone email:nj2000515@foxmail.com
% date:2023/2/23


%***********************高斯光束产生函数**************************
function Gaussian_I = f_Gaussian_beams(w0,z,lamda,x_length,y_length,Nx,Ny)
%   w0:     束腰半径
%   z:      传输距离
%   lamda:  波长
%   x_length: 观察屏x方向长度
%   y_length: 观察屏y方向长度
%   Nx，Ny: x,y方向等分割数目
%   Gaussian_I: 输出光强分布

x_pos = linspace(-x_length/2, x_length/2, Nx);
y_pos = linspace(-y_length/2, y_length/2, Ny);
[X,Y] = meshgrid(x_pos, y_pos);

zR = pi*(w0^2)/lamda;       % 瑞利长度
w_z = w0*sqrt(1+(z/zR)^2);  % z位置的光束半径
I0 = 1;                     % 光强系数定义为1

Gaussian_I = I0*exp(-2.*(sqrt(X.^2+Y.^2)./w_z).^2);
end
